package com.neusoft.license.generate.param;

import com.alibaba.fastjson.annotation.JSONField;
import com.neusoft.license.common.model.LicenseModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author: xlh
 * @Description: License生成类需要的参数
 * @Date: Create in 11:17 2020/9/17 0017
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class LicenseParam implements Serializable {

    private static final long serialVersionUID = -7793154252684580872L;
    /**
     * 证书subject
     */
    private String subject;

    /**
     * 密钥别称
     */
    private String privateAlias;

    /**
     * 密钥密码（需要妥善保管，不能让使用者知道）
     */
    private String keyPass;

    /**
     * 访问秘钥库的密码
     */
    private String storePass;

    /**
     * 证书生成路径
     */
    private String licensePath;

    /**
     * 密钥库存储路径
     */
    private String privateKeysStorePath;

    /**
     * 证书生效时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date issuedTime = new Date();

    /**
     * 证书失效时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date expiryTime;

    /**
     * 用户类型
     */
    private String consumerType = "user";

    /**
     * 用户数量
     */
    private Integer consumerAmount = 1;

    /**
     * 描述信息
     */
    private String description;

    /**
     * 额外的服务器硬件校验信息
     */
    private LicenseModel licenseModel;
}
